<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl"
    href="http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"?>

<!DOCTYPE article PUBLIC '-//OASIS//DTD DocBook XML V4.5//EN'
    'http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd' [
<!ENTITY % versiondata SYSTEM "version.xml"> %versiondata;
]>

<article class="specification" lang="en" id="copyright-format-1.0">
  <articleinfo>
    <title>
      Machine-readable <filename>debian/copyright</filename> file
    </title>
    <subtitle>Version 1.0</subtitle>
    <releaseinfo>Debian Policy &version;, &date;</releaseinfo>
    <legalnotice>
      <para>
        Copying and distribution of this file, with or without modification,
        are permitted in any medium without royalty provided this notice is
        preserved.
      </para>
    </legalnotice>
    <abstract>
      <para>
        Establishes a standard, machine-readable format for
        <filename>debian/copyright</filename> files within Debian packages
        to facilitate automated checking and reporting of licenses for
        packages and sets of packages.  This specification was originally
        drafted as
        <ulink url="http://dep.debian.net/deps/dep5/">DEP-5</ulink>.
      </para>
    </abstract>
  </articleinfo>

  <section id="introduction">
    <title>Introduction</title>
    <para>
      This document describes a standard, machine-interpretable format for
      the <filename>debian/copyright</filename> file.  This file is one of
      the most important files in Debian packaging, but, prior to this
      specification, no standard format was defined for it and its
      contents varied tremendously across packages.  This made it
      difficult to automatically extract licensing information.
    </para>
    <para>
      Use of this specification is optional.
    </para>
    <para>
      Nothing in this proposal supersedes or modifies any of the requirements
      specified in Debian Policy regarding the appropriate detail or
      granularity to use when documenting copyright and license status in
      <filename>debian/copyright</filename>.
    </para>
  </section>

  <section id="rationale">
    <title>Rationale</title>
    <para>
      The diversity of free software licenses means that Debian needs to care
      not only about the freeness of a given work, but also its license's
      compatibility with the other parts of Debian it uses.
    </para>
    <para>
      The arrival of the GPL version 3, its incompatibility with version 2, and
      our inability to spot the software where the incompatibility might be
      problematic is one prominent occurrence of this limitation.
    </para>
    <para>
      There are earlier precedents, also. One is the GPL/OpenSSL
      incompatibility.  Apart from grepping
      <filename>debian/copyright</filename>, which is prone to numerous false
      positives (packaging under the GPL but software under another license) or
      negatives (GPL software but with an <quote>OpenSSL special
      exception</quote> dual licensing form), there is no reliable way to know
      which software in Debian might be problematic.
    </para>
    <para>
      And there is more to come.  There are issues with shipping GPLv2-only
      software with a CDDL operating system such as Nexenta. The GPL version 3
      solves this issue, but not all GPL software can switch to it and we have
      no way to know how much of Debian should be stripped from such a system.
    </para>
    <para>
      Even where licenses are DFSG-free and mutually compatible, users may
      wish for a way to identify software under certain licenses (if, for
      example, they have special reasons to avoid certain licenses).
    </para>
  </section>

  <section id="acknowledgements">
    <title>Acknowledgements</title>
    <para>
      Many people have worked on this specification over the years.  The
      following alphabetical list is incomplete; please suggest missing people:
      Russ Allbery,
      Ben Finney,
      Sam Hocevar,
      Steve Langasek,
      Charles Plessy,
      Noah Slater,
      Jonas Smedegaard,
      Lars Wirzenius.
    </para>
  </section>

  <section id="file-syntax">
    <title>File syntax</title>
    <para>
      The <filename>debian/copyright</filename> file must be
      machine-interpretable, yet human-readable, while communicating all
      mandated upstream information, copyright notices and licensing details.
    </para>
    <para>
      The syntax of the file is the same as for other Debian control files, as
      specified in the Debian Policy Manual.  See its <ulink
      url="http://www.debian.org/doc/debian-policy/ch-controlfields#s-controlsyntax">section
      5.1</ulink> for details. Extra fields can be added to any paragraph.  No
      prefixing is necessary or desired, but please avoid names similar to
      standard ones so that mistakes are easier to catch.  Future versions of
      the <filename>debian/copyright</filename> specification will attempt to
      avoid conflicting specifications for widely used extra fields.
    </para>
    <para>
      The file consists of two or more paragraphs.  At minimum, the file
      must include one <link linkend="header-paragraph">header
      paragraph</link> and one <link linkend="files-paragraph">Files
      paragraph</link>.
    </para>
    <para>
      There are four types of fields.  The definition for each field in this
      document indicates which type of value it takes.
    </para>

    <section id="single-line">
      <title>Single-line values</title>
      <para>
        The entire value of a single-line field must be on a single line.
        For example, the <varname>Format</varname> field has a single-line
        value specifying the version of the machine-readable format that
        is used.
      </para>
    </section>

    <section id="white-space-lists">
      <title>Whitespace-separated lists</title>
      <para>
        Field values defined as whitespace-separated lists may be on one
        line or many.  Values in the list are separated by one or more
        whitespace characters (space, tab, or newline).  For example, the
        <varname>Files</varname> field contains a whitespace-separated
        list of filename patterns.
      </para>
    </section>

    <section id="line-based-lists">
      <title>Line-based lists</title>
      <para>
        Line-based lists have one value per line. For example, the
        <varname>Upstream-Contact</varname> field contains a line-based
        list of contact addresses.
      </para>
    </section>

    <section id="formatted-text">
      <title>Formatted text</title>
      <para>
        Formatted text fields use the same rules as the long description
        in a package's <varname>Description</varname> field in Debian
        control files.  In some but not all cases, the first line may have
        special meaning as a synopsis, similar to how the
        <varname>Description</varname> field uses the first line for the
        short description. See Debian Policy's section 5.6.13, <ulink
        url="http://www.debian.org/doc/debian-policy/ch-controlfields#s-f-Description"><quote>Description</quote></ulink>,
        for details.  For example, <varname>Disclaimer</varname> is a
        formatted text field that has no special first line, and
        <varname>License</varname> is a formatted text field where the
        first line indicates the short name or names of the licenses.
      </para>
    </section>
  </section>

  <section id="paragraphs">
    <title>Paragraphs</title>
    <para>
      There are three kinds of paragraphs.  The first paragraph in the file
      is called the <link linkend="header-paragraph">header paragraph</link>.
      Every other paragraph is either a <link
      linkend="files-paragraph">Files paragraph</link> or a <link
      linkend="stand-alone-license-paragraph">stand-alone License
      paragraph</link>.  This is similar to source and binary package
      paragraphs in <filename>debian/control</filename> files.
    </para>

    <section id="header-paragraph">
      <title>Header paragraph (once)</title>
      <para>
        The following fields may be present in a header paragraph.
      </para>
      <itemizedlist>
        <listitem>
          <para>
            <link linkend="format-field">Format</link>: required.
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="upstream-name-field">Upstream-Name</link>:
            optional.
          </para>
        </listitem>
        <listitem>
          <para>
            <link
            linkend="upstream-contact-field">Upstream-Contact</link>:
            optional.
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="source-field">Source</link>: optional.
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="disclaimer-field">Disclaimer</link>:
            optional.
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="comment-field">Comment</link>: optional.
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="license-field">License</link>: optional.
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="copyright-field">Copyright</link>: optional.
          </para>
        </listitem>
      </itemizedlist>
      <para>
        The <varname>Copyright</varname> and <varname>License</varname>
        fields in the <emphasis>header paragraph</emphasis> may complement
        but do not replace the <emphasis>Files paragraphs</emphasis>.  If
        present, they summarise the copyright notices or redistribution
        terms for the package as a whole.  For example, when a work
        combines a permissive and a copyleft license,
        <varname>License</varname> can be used to clarify the license
        terms for the combination.  <varname>Copyright</varname> and
        <varname>License</varname> together can also be used to document a
        <emphasis>compilation copyright</emphasis> and license.  It is
        possible to use only <varname>License</varname> in the header
        paragraph, but <varname>Copyright</varname> alone makes no sense.
      </para>

      <section id="example-header-paragraph">
        <title>Example header paragraph</title>
<programlisting>Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: SOFTware
Upstream-Contact: John Doe &lt;john.doe@example.com&gt;
Source: http://www.example.com/software/project</programlisting>
      </section>
    </section>

     <section id="files-paragraph">
      <title>Files paragraph (repeatable)</title>
      <para>
        The declaration of copyright and license for files may consist of
        one or more paragraphs.  In the simplest case, a single paragraph
        with <literal>Files: *</literal> can be used to state the license
        and copyright for the whole package.  Only the license and
        copyright information required by the Debian archive is required
        to be listed here.
      </para>
      <para>
        The following fields may be present in a Files paragraph.
      </para>

      <itemizedlist>
        <listitem>
          <para>
            <link linkend="files-field">Files</link>: required.
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="copyright-field">Copyright</link>: required.
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="license-field">License</link>: required.
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="comment-field">Comment</link>: optional.
          </para>
        </listitem>
      </itemizedlist>

      <section id="example-files-paragraph">
        <title>Example files paragraphs</title>
<programlisting>Files: *
Copyright: 1975-2010 Ulla Upstream
License: GPL-2+

Files: debian/*
Copyright: 2010 Daniela Debianizer
License: GPL-2+

Files: debian/patches/fancy-feature
Copyright: 2010 Daniela Debianizer
License: GPL-3+

Files: */*.1
Copyright: 2010 Manuela Manpager
License: GPL-2+</programlisting>
        <para>
          In this example, all files are copyright by the upstream and licensed
          under the GPL, version 2 or later, with three exceptions.  All the
          Debian packaging files are copyright by the packager, and further one
          specific file providing a new feature is licensed differently.
          Finally, there are some manual pages added to the package, written by
          a third person.
        </para>
        <para>
          Since the license of the manual pages is the same as the other
          files in the package, the last paragraph above could instead be
          combined with the first paragraph, listing both copyright
          statements in one <varname>Copyright</varname> field.  Whether
          to combine paragraphs with the same license is left to the
          discretion of the author of the
          <filename>debian/copyright</filename> file.
        </para>
      </section>
    </section>

    <section id="stand-alone-license-paragraph">
      <title>Stand-alone License Paragraph (optional, repeatable)</title>
      <para>
        Stand-alone <varname>License</varname> paragraphs can be used to
        provide the full license text for a given license once, instead of
        repeating it in each <varname>Files</varname> paragraph that refers to
        it.  The first line of the <varname>License</varname> field must be a
        single license short name or a short name followed by a license
        exception.
      </para>
      <para>
        The following fields may be present in a stand-alone License
        paragraph.
      </para>

      <itemizedlist>
        <listitem>
          <para>
            <link linkend="license-field">License</link>: required.
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="comment-field">Comment</link>: optional.
          </para>
        </listitem>
      </itemizedlist>
      <example>
        <title>tri-licensed files</title>
<programlisting>Files: src/js/editline/*
Copyright: 1993, John Doe
           1993, Joe Average
License: MPL-1.1 or GPL-2 or LGPL-2.1

License: MPL-1.1
 [LICENSE TEXT]

License: GPL-2
 [LICENSE TEXT]

License: LGPL-2.1
 [LICENSE TEXT]</programlisting>
      </example>

      <example>
        <title>recurrent license</title>
<programlisting>Files: src/js/editline/*
Copyright: 1993, John Doe
           1993, Joe Average
License: MPL-1.1

Files: src/js/fdlibm/*
Copyright: 1993, J-Random Corporation
License: MPL-1.1

License: MPL-1.1
 [LICENSE TEXT]</programlisting>
      </example>
    </section>
  </section>

  <section id="fields">
    <title>Fields</title>
    <para>
      The following fields are defined for use in
      <filename>debian/copyright</filename>.
    </para>

    <section id="format-field">
      <title><varname>Format</varname></title>
      <para>
        Single-line: URI of the format specification.  The field that
        should be used for the current version of this document is:
<programlisting>Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/</programlisting>
      </para>
    </section>

    <section id="upstream-name-field">
      <title><varname>Upstream-Name</varname></title>
      <para>
        Single-line: the name upstream uses for the software
      </para>
    </section>

    <section id="upstream-contact-field">
      <title><varname>Upstream-Contact</varname></title>
      <para>
        Line-based list: the preferred address(es) to reach the upstream
        project.  May be free-form text, but by convention will usually be
        written as a list of RFC5322 addresses or URIs.
      </para>
    </section>

    <section id="source-field">
      <title><varname>Source</varname></title>
      <para>
        Formatted text, no synopsis: an explanation of where the upstream
        source came from.  Typically this would be a URL, but it might be a
        free-form explanation.  The Debian Policy section <ulink
        url="http://www.debian.org/doc/debian-policy/ch-docs#s-copyrightfile">12.5</ulink>
        requires this information unless there are no upstream sources,
        which is mainly the case for native Debian packages.  If the
        upstream source has been modified to remove non-free parts, that
        should be explained in this field.
      </para>
    </section>

    <section id="disclaimer-field">
      <title><varname>Disclaimer</varname></title>
      <para>
        Formatted text, no synopsis: this field is used for non-free or
        contrib packages to state that they are not part of Debian and to
        explain why (see Debian Policy section <ulink
        url="http://www.debian.org/doc/debian-policy/ch-docs#s-copyrightfile">12.5</ulink>).
      </para>
    </section>

    <section id="comment-field">
      <title><varname>Comment</varname></title>
      <para>
        Formatted text, no synopsis: this field can provide additional
        information.  For example, it might quote an e-mail from upstream
        justifying why the license is acceptable to the main archive, or an
        explanation of how this version of the package has been forked from
        a version known to be DFSG-free, even though the current upstream
        version is not.
      </para>
    </section>

    <section id="license-field">
      <title><varname>License</varname></title>
      <para>
        Formatted text, with synopsis.  In the header paragraph, this field
        gives the license information for the package as a whole, which may
        be different or simplified from a combination of all the per-file
        license information.  In a Files paragraph, this field gives the
        licensing terms for the files listed in the <varname>Files</varname>
        field for this paragraph.  In a stand-alone License paragraph, it
        gives the licensing terms for those paragraphs which reference it.
      </para>
      <para>
        First line: an abbreviated name for the license, or expression
        giving alternatives (see the <link linkend="license-short-name">Short
        name</link> section for a list of standard abbreviations).  If
        there are licenses present in the package without a standard short
        name, an arbitrary short name may be assigned for these licenses. 
        These arbitrary names are only guaranteed to be unique within a
        single copyright file.
      </para>
      <para>
        If there are no remaining lines, then all of the short names
        or short names followed by license exceptions making up the
        first line must be described in <link
        linkend="stand-alone-license-paragraph">stand-alone License
        paragraphs</link>.  Otherwise, this field should either
        include the full text of the license(s) or include a pointer to the
        license file under <filename>/usr/share/common-licenses</filename>. 
        This field should include all text needed in order to fulfill both
        Debian Policy's requirement for including a copy of the software's
        distribution license (<ulink
        url="http://www.debian.org/doc/debian-policy/ch-docs#s-copyrightfile">12.5</ulink>),
        and any license requirements to include warranty disclaimers or
        other notices with the binary package.
      </para>
    </section>

    <section id="copyright-field">
      <title><varname>Copyright</varname></title>
      <para>
        Formatted text, no synopsis: one or more free-form copyright
        statements.  Any formatting is permitted; see the examples below
        for some ideas for how to structure the field to make it easier to
        read.  In the header paragraph, this field gives the copyright
        information for the package as a whole, which may be different or
        simplified from a combination of all the per-file copyright
        information.  In the Files paragraphs, it gives the copyright
        information that applies to the files matched by the
        <varname>Files</varname> pattern.  If a work has no copyright holder
        (i.e., it is in the public domain), that information should be
        recorded here.
      </para>
      <para>
        The <varname>Copyright</varname> field collects all relevant
        copyright notices for the files of this paragraph.  Not all
        copyright notices may apply to every individual file, and years of
        publication for one copyright holder may be gathered together.  For
        example, if file A has:
<programlisting>Copyright 2008 John Smith
Copyright 2009 Angela Watts</programlisting>
        and file B has:
<programlisting>Copyright 2010 Angela Watts</programlisting>
        a single paragraph may still be used for both files.  The
        <varname>Copyright</varname> field for that paragraph would
        contain:
<programlisting>Copyright 2008 John Smith
Copyright 2009, 2010 Angela Watts</programlisting>
      </para>
      <para>
        The <varname>Copyright</varname> field may contain the original
        copyright statement copied exactly (including the word
        <quote>Copyright</quote>), or it may shorten the text or merge it
        with other copyright statements as described above, as long as it
        does not sacrifice information.  Examples in this specification use
        both forms.
      </para>
    </section>

    <section id="files-field">
      <title><varname>Files</varname></title>
      <para>
        Whitespace-separated list: list of patterns indicating files covered
        by the license and copyright specified in this paragraph.
      </para>
      <para>
        Filename patterns in the <varname>Files</varname> field are
        specified using a simplified shell glob syntax.  Patterns are
        separated by whitespace.
        <itemizedlist>
          <listitem>
            <para>
              Only the wildcards <literal>*</literal> and <literal>?</literal>
              apply; the former matches any number of characters (including
              none), the latter a single character.  Both match slashs
              (<literal>/</literal>) and leading dots, unlike shell globs.
              The pattern <literal>*.in</literal> therefore matches any
              file whose name ends in <literal>.in</literal> anywhere in
              the source tree, not just at the top level.
            </para>
          </listitem>
          <listitem>
            <para>
              Patterns match pathnames that start at the root of the source
              tree.  Thus, <quote><filename>Makefile.in</filename></quote>
              matches only the file at the root of the tree, but
              <quote><filename>*/Makefile.in</filename></quote> matches at
              any depth.
            </para>
          </listitem>
          <listitem>
            <para>
              The backslash (<literal>\</literal>) is used to remove the
              magic from the next character; see table below.
            </para>
          </listitem>
        </itemizedlist>
        <informaltable>
          <tgroup cols="2">
            <thead>
              <row>
                <entry>Escape sequence</entry>
                <entry>Matches</entry>
              </row>
            </thead>
            <tbody>
              <row>
                <entry><literal>\*</literal></entry>
                <entry>star (asterisk)</entry>
              </row>
              <row>
                <entry><literal>\?</literal></entry>
                <entry>question mark</entry>
              </row>
              <row>
                <entry><literal>\\</literal></entry>
                <entry>backslash</entry>
              </row>
            </tbody>
          </tgroup>
        </informaltable>
        Any other character following a backslash is an error.
      </para>
      <para>
        This is the same pattern syntax as
        <citerefentry><refentrytitle>fnmatch</refentrytitle>
        <manvolnum>3</manvolnum></citerefentry> without the
        <constant>FNM_PATHNAME</constant> flag, or the argument to the
        <literal>-path</literal> test of the GNU <command>find</command>
        command, except that <literal>[]</literal> wildcards are not
        recognized.
      </para>
      <para>
        Multiple <varname>Files</varname> paragraphs are allowed.  The last
        paragraph that matches a particular file applies to it.  More
        general paragraphs should therefore be given first, followed by
        more specific overrides.
      </para>
      <para>
        Exclusions are only supported by adding <varname>Files</varname>
        paragraphs to override the previous match.
      </para>
    </section>

  </section>
  <section id="license-specification">
    <title>License specification</title>

    <section id="license-short-name">
      <title>Short name</title>
      <para>
        Much of the value of a machine-parseable copyright file lies in being
        able to correlate the licenses of multiple pieces of software.  To that
        end, this spec defines standard short names for a number of commonly
        used licenses, which can be used in the first line of a
        <varname>License</varname> field.
      </para>
      <para>
        These short names have the specified meanings across all uses of this
        file format, and <emphasis>must not</emphasis> be used to refer to any
        other licenses.  Parsers may thus rely on these short names referring
        to the same licenses wherever they occur, without needing to parse or
        compare the full license text.
      </para>
      <para>
        From time to time, licenses may be added to or removed from the list of
        standard short names.  Such changes in the list of short names will
        always be accompanied by changes to the version of this standard
        and to the recommended
        <varname>Format</varname> value. Implementers who are parsing copyright
        files should take care not to assume anything about the meaning of
        license short names for unknown <varname>Format</varname> versions.
      </para>
      <para>
        Use of a standard short name does not override the Debian Policy
        requirement to include the full license text in
        <filename>debian/copyright</filename>, nor any requirements in the
        license of the work regarding reproduction of legal notices.  This
        information must still be included in the <varname>License</varname>
        field, either in a stand-alone License paragraph or in the relevant
        files paragraph.
      </para>
      <para>
        For licenses that have multiple versions in use, the short name is
        formed from the general short name of the license family, followed
        by a dash and the version number.  If the version number is
        omitted, the lowest version number is implied.  When the license
        grant permits using the terms of any later version of that
        license, add a plus sign to the end of the short name.  For
        example, the short name <literal>GPL</literal> refers to the GPL
        version 1 and is equivalent to <literal>GPL-1</literal>, although
        the latter is clearer and therefore preferred.  If the package may
        be distributed under the GPL version 1 or any later version, use a
        short name of <literal>GPL-1+</literal>.
      </para>
      <para>
        For <link linkend="spdx">SPDX</link> compatibility, versions with
        trailing <emphasis>dot-zeroes</emphasis> are considered to be
        equivalent to versions without (e.g., <quote>2.0.0</quote> is
        considered equal to <quote>2.0</quote> and <quote>2</quote>).
      </para>
      <para>
        Currently, the full text of the licenses is only available in the
        <ulink url="http://spdx.org/licenses">SPDX Open Source License
        Registry</ulink>.
      </para>
      <informaltable>
        <tgroup cols="2">
          <thead>
            <row>
              <entry>Keyword</entry>
              <entry>Meaning</entry>
            </row>
          </thead>
          <tbody>
            <row>
              <entry>public-domain</entry>
              <entry>
                No license required for any purpose; the work is not subject to
                copyright in any jurisdiction.
              </entry>
            </row>
            <row>
              <entry>
                Apache
              </entry>
              <entry>
                Apache license
                <ulink url="http://spdx.org/licenses/Apache-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/Apache-2.0">2.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                Artistic
              </entry>
              <entry>
                Artistic license
                <ulink url="http://spdx.org/licenses/Artistic-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/Artistic-2.0">2.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                BSD-2-clause
              </entry>
              <entry>
                Berkeley software distribution license,
                <ulink url="http://spdx.org/licenses/BSD-2-Clause">2-clause
                version</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                BSD-3-clause
              </entry>
              <entry>
                Berkeley software distribution license,
                <ulink url="http://spdx.org/licenses/BSD-3-Clause">3-clause
                version</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                BSD-4-clause
              </entry>
              <entry>
                Berkeley software distribution license,
                <ulink url="http://spdx.org/licenses/BSD-4-Clause">4-clause
                version</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                ISC
              </entry>
              <entry>
                <ulink url="http://spdx.org/licenses/ISC">Internet Software
                Consortium</ulink>, sometimes also known as the OpenBSD License.
              </entry>
            </row>
            <row>
              <entry>
                CC-BY
              </entry>
              <entry>
                Creative Commons Attribution license
                <ulink url="http://spdx.org/licenses/CC-BY-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-2.0">2.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-2.5">2.5</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-3.0">3.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                CC-BY-SA
              </entry>
              <entry>
                Creative Commons Attribution Share Alike license
                <ulink url="http://spdx.org/licenses/CC-BY-SA-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-SA-2.0">2.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-SA-2.5">2.5</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-SA-3.0">3.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                CC-BY-ND
              </entry>
              <entry>
                Creative Commons Attribution No Derivatives license
                <ulink url="http://spdx.org/licenses/CC-BY-ND-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-ND-2.0">2.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-ND-2.5">2.5</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-ND-3.0">3.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                CC-BY-NC
              </entry>
              <entry>
                Creative Commons Attribution Non-Commercial license
                <ulink url="http://spdx.org/licenses/CC-BY-NC-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-NC-2.0">2.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-NC-2.5">2.5</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-NC-3.0">3.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                CC-BY-NC-SA
              </entry>
              <entry>
                Creative Commons Attribution Non-Commercial Share Alike license
                <ulink url="http://spdx.org/licenses/CC-BY-NC-SA-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-NC-SA-2.0">2.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-NC-SA-2.5">2.5</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-NC-SA-3.0">3.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                CC-BY-NC-ND
              </entry>
              <entry>
                Creative Commons Attribution Non-Commercial No Derivatives
                license
                <ulink url="http://spdx.org/licenses/CC-BY-NC-ND-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-NC-ND-2.0">2.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-NC-ND-2.5">2.5</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-NC-ND-3.0">3.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                CC0
              </entry>
              <entry>
                Creative Commons Zero
                <ulink url="http://spdx.org/licenses/CC0-1.0">1.0 Universal</ulink>.
                Omit <quote>Universal</quote> from the license version when
                forming the short name.
              </entry>
            </row>
            <row>
              <entry>
                CDDL
              </entry>
              <entry>
                Common Development and Distribution License
                <ulink url="http://spdx.org/licenses/CDDL-1.0">1.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                CPL
              </entry>
              <entry>
                <ulink url="http://spdx.org/licenses/CPL-1.0">IBM Common Public
                License</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                EFL
              </entry>
              <entry>
                The Eiffel Forum License
                <ulink url="http://spdx.org/licenses/EFL-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/EFL-2.0">2.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                Expat
              </entry>
              <entry>
                The <ulink url="http://www.jclark.com/xml/copying.txt">Expat</ulink>
                license.
              </entry>
            </row>
            <row>
              <entry>
                GPL
              </entry>
              <entry>
                GNU General Public License
                <ulink url="http://spdx.org/licenses/GPL-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/GPL-2.0">2.0</ulink>,
                <ulink url="http://spdx.org/licenses/GPL-3.0">3.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                LGPL
              </entry>
              <entry>
                GNU Lesser General Public License
                <ulink url="http://spdx.org/licenses/LGPL-2.1">2.1</ulink>,
                <ulink url="http://spdx.org/licenses/LGPL-3.0">3.0</ulink>, or
                GNU Library General Public License
                <ulink url="http://spdx.org/licenses/LGPL-2.0">2.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                GFDL
              </entry>
              <entry>
                GNU Free Documentation License 1.0,
                <ulink url="http://spdx.org/licenses/GFDL-1.1">1.1</ulink>,
                <ulink url="http://spdx.org/licenses/GFDL-1.2">1.2</ulink>, or
                <ulink url="http://spdx.org/licenses/GFDL-1.3">1.3</ulink>.
                Use GFDL-NIV instead if there are no Front-Cover or
                Back-Cover Texts or Invariant Sections.
              </entry>
            </row>
            <row>
              <entry>
                GFDL-NIV
              </entry>
              <entry>
                GNU Free Documentation License, with no Front-Cover or
                Back-Cover Texts or Invariant Sections.  Use the same
                version numbers as GFDL.
              </entry>
            </row>
            <row>
              <entry>
                LPPL
              </entry>
              <entry>
                <ulink url="http://www.latex-project.org/lppl/">LaTeX Project
                Public License</ulink>
                <ulink url="http://spdx.org/licenses/LPPL-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/LPPL-1.1">1.1</ulink>,
                <ulink url="http://spdx.org/licenses/LPPL-1.2">1.2</ulink>,
                <ulink url="http://spdx.org/licenses/LPPL-1.3c">1.3c</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                MPL
              </entry>
              <entry>
                Mozilla Public License
                <ulink url="http://spdx.org/licenses/MPL-1.1">1.1</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                Perl
              </entry>
              <entry>
                <ulink url="http://dev.perl.org/licenses/">Perl</ulink> license
                (use <quote><literal>GPL-1+ or Artistic-1</literal></quote>
                instead).
              </entry>
            </row>
            <row>
              <entry>
                Python
              </entry>
              <entry>
                Python license
                <ulink url="http://spdx.org/licenses/Python-2.0">2.0</ulink>.
              </entry>
              <!-- See https://fossbazaar.org/pipermail/spdx-legal/2011-February/000010.html -->
            </row>
            <row>
              <entry>
                QPL
              </entry>
              <entry>
                Q Public License <ulink
                url="http://spdx.org/licenses/QPL-1.0">1.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                W3C
              </entry>
              <entry>
                <ulink url="http://spdx.org/licenses/W3C">W3C Software
                License</ulink> For more information, consult the
                <ulink
                url="http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620">W3C
                Intellectual Rights FAQ</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                Zlib
              </entry>
              <entry>
                <ulink url="http://spdx.org/licenses/Zlib">
                zlib/libpng license</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                Zope
              </entry>
              <entry>
                Zope Public License 1.0,
                  <ulink url="http://spdx.org/licenses/ZPL-1.1">1.1</ulink>,
                  <ulink url="http://spdx.org/licenses/ZPL-2.0">2.0</ulink>,
                  <ulink url="http://spdx.org/licenses/ZPL-2.1">2.1</ulink>.
              </entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
      <para>
        There are <ulink
        url="http://en.wikipedia.org/wiki/MIT_License#Various_versions">many
        versions of the MIT license</ulink>. Please use Expat instead, when it
        matches.
      </para>
      <para>
        An exception or clarification to a license is signalled in plain text,
        by appending <literal>with
        <varname><replaceable>keywords</replaceable></varname>
        exception</literal> to the short name.  This document provides a list
        of keywords that must be used when referring to the most frequent
        exceptions.  When exceptions other than these are in effect that
        modify a common license by granting additional permissions, you may
        use an arbitrary keyword not taken from the below list of keywords.
        When a license differs from a common license because of added
        restrictions rather than because of added permissions, a distinct
        short name should be used instead of <literal>with
        <varname><replaceable>keywords</replaceable></varname>
        exception</literal>.
      </para>
      <para>
        Only one exception may be specified for each license within a given
        license specification.  If more than one exception applies to a single
        license, an arbitrary short name indicating that combination of
        multiple exceptions must be used instead.
      </para>
      <para>
        The GPL <literal>Font</literal> exception refers to the text added to
        the license notice of each file as specified at <ulink
        url="http://www.gnu.org/licenses/gpl-faq#FontException">How does the
        GPL apply to fonts</ulink>.  The precise text corresponding to this
        exception is:
<programlisting>As a special exception, if you create a document which uses this font,
and embed this font or unaltered portions of this font into the
document, this font does not by itself cause the resulting document to
be covered by the GNU General Public License. This exception does not
however invalidate any other reasons why the document might be covered
by the GNU General Public License. If you modify this font, you may
extend this exception to your version of the font, but you are not
obligated to do so. If you do not wish to do so, delete this exception
statement from your version.</programlisting>
        </para>
        <para>
          The GPL <literal>OpenSSL</literal> exception gives permission to
          link GPL-licensed code with the OpenSSL library, which contains
          GPL-incompatible clauses.  For more information, see <ulink
          url="http://www.gnome.org/~markmc/openssl-and-the-gpl">The OpenSSL
          License and The GPL</ulink> by Mark McLoughlin and the message
          <ulink
          url="http://lists.debian.org/debian-legal/2004/05/msg00595.html">middleman
          software license conflicts with OpenSSL</ulink> by Mark McLoughlin
          on the <emphasis>debian-legal</emphasis> mailing list.  The text
          corresponding to this exception is:
<programlisting>In addition, as a special exception, the copyright holders give
permission to link the code of portions of this program with the
OpenSSL library under certain conditions as described in each
individual source file, and distribute linked combinations including
the two.

You must obey the GNU General Public License in all respects for all
of the code used other than OpenSSL. If you modify file(s) with this
exception, you may extend this exception to your version of the
file(s), but you are not obligated to do so. If you do not wish to do
so, delete this exception statement from your version. If you delete
this exception statement from all source files in the program, then
also delete it here.</programlisting>
        </para>

        <section id="public-domain">
          <title>Public domain</title>
          <para>
            The <varname>License</varname> short name
            <literal>public-domain</literal> does not refer to a set of license
            terms. There are some works which are not subject to copyright in
            any jurisdiction and therefore no license is required for any
            purpose covered by copyright law. This short name is an explicit
            declaration that the associated files are <quote>in the public
            domain</quote>.
          </para>
          <para>
            Widespread misunderstanding about copyright in general, and the
            public domain in particular, results in the common assertion that a
            work is in the public domain when this is partly or wholly untrue
            for that work. The <ulink
            url="http://en.wikipedia.org/wiki/Public_domain">Wikipedia article
            on public domain</ulink> is a useful reference for this subject.
          </para>
          <para>
            When the <varname>License</varname> field in a paragraph has the
            short name <literal>public-domain</literal>, the remaining lines of
            the field <emphasis>must</emphasis> explain exactly what exemption
            the corresponding files for that paragraph have from default
            copyright restrictions.
        </para>
      </section>
    </section>

    <section id="license-syntax">
      <title>Syntax</title>
      <para>
        License names are case-insensitive, and may not contain spaces.
      </para>
      <para>
        In case of multi-licensing, the license short names are separated by
        <literal>or</literal> when the user can chose between different
        licenses, and by <literal>and</literal> when use of the work must
        simultaneously comply with the terms of multiple licenses.
      </para>
      <para>
        For instance, this is a simple, <quote>GPL version 2 or later</quote>
        field:
<programlisting>License: GPL-2+</programlisting>
        This is a dual-licensed GPL/Artistic work such as Perl:
<programlisting>License: GPL-1+ or Artistic</programlisting>
        This is for a file that has both GPL and classic BSD code in it:
<programlisting>License: GPL-2+ and BSD-3-clause</programlisting>
        For the most complex cases, a comma is used to disambiguate the
        priority of <literal>or</literal>s and <literal>and</literal>s.
        The conjunction <quote><literal>and</literal></quote> has priority over
        <quote><literal>or</literal></quote> unless preceded by a comma. For
        instance:
      </para>
      <simpara>
        <literal>A or B and C</literal> means <literal>A or (B and C)</literal>.
      </simpara>
      <simpara>
        <literal>A or B, and C</literal> means <literal>(A or B) and
        C</literal>.
      </simpara>
      <para>
        This is for a file that has Perl code and classic BSD code in it:
<programlisting>License: GPL-2+ or Artistic-2.0, and BSD-3-clause</programlisting>
        A <literal>GPL-2+</literal> work with the <literal>OpenSSL</literal>
        exception is in effect a dual-licensed work that can be redistributed
        either under the <literal>GPL-2+</literal>, or under the
        <literal>GPL-2+</literal> with the <literal>OpenSSL</literal>
        exception.  It is thus expressed as <literal>GPL-2+ with OpenSSL
        exception</literal>.  A possible <varname>License</varname> field for
        such a license is:
<programlisting>License: GPL-2+ with OpenSSL exception
 This program is free software; you can redistribute it
 and/or modify it under the terms of the GNU General Public
 License as published by the Free Software Foundation; either
 version 2 of the License, or (at your option) any later
 version.
 .
 In addition, as a special exception, the author of this
 program gives permission to link the code of its
 release with the OpenSSL project's "OpenSSL" library (or
 with modified versions of it that use the same license as
 the "OpenSSL" library), and distribute the linked
 executables. You must obey the GNU General Public
 License in all respects for all of the code used other
 than "OpenSSL".  If you modify this file, you may extend
 this exception to your version of the file, but you are
 not obligated to do so.  If you do not wish to do so,
 delete this exception statement from your version.
 .
 This program is distributed in the hope that it will be
 useful, but WITHOUT ANY WARRANTY; without even the implied
 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 PURPOSE.  See the GNU General Public License for more
 details.
 .
 You should have received a copy of the GNU General Public
 License along with this package; if not, write to the Free
 Software Foundation, Inc., 51 Franklin St, Fifth Floor,
 Boston, MA  02110-1301 USA
 .
 On Debian systems, the full text of the GNU General Public
 License version 2 can be found in the file
 `/usr/share/common-licenses/GPL-2'.</programlisting>
       </para>
     </section>

    <section id="spdx">
      <title>SPDX</title>
      <para>
        <ulink url="http://spdx.org/">SPDX</ulink> is an attempt to standardize
        a format for communicating the components, licenses and copyrights
        associated with a software package. It and the machine-readable
        <filename>debian/copyright</filename> format attempt to be somewhat
        compatible. However, the two formats have different aims, and so the
        formats are different. The <ulink
        url="http://wiki.debian.org/Proposals/CopyrightFormat">DEP5 wiki
        page</ulink> will be used to track the differences.
      </para>
    </section>
  </section>

  <section id="examples">
    <title>Examples</title>
    <example>
      <title>Simple</title>
      <para>
        A possible <filename>debian/copyright</filename> file for the program
        <quote>X Solitaire</quote> distributed in the Debian source package
        <literal>xsol</literal>:
<programlisting><![CDATA[Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: X Solitaire
Source: ftp://ftp.example.com/pub/games

Files: *
Copyright: Copyright 1998 John Doe <jdoe@example.com>
License: GPL-2+
 This program is free software; you can redistribute it
 and/or modify it under the terms of the GNU General Public
 License as published by the Free Software Foundation; either
 version 2 of the License, or (at your option) any later
 version.
 .
 This program is distributed in the hope that it will be
 useful, but WITHOUT ANY WARRANTY; without even the implied
 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 PURPOSE.  See the GNU General Public License for more
 details.
 .
 You should have received a copy of the GNU General Public
 License along with this package; if not, write to the Free
 Software Foundation, Inc., 51 Franklin St, Fifth Floor,
 Boston, MA  02110-1301 USA
 .
 On Debian systems, the full text of the GNU General Public
 License version 2 can be found in the file
 `/usr/share/common-licenses/GPL-2'.

Files: debian/*
Copyright: Copyright 1998 Jane Smith <jsmith@example.net>
License: GPL-2+
 [LICENSE TEXT]]]></programlisting>
      </para>
    </example>

    <example>
      <title>Complex</title>
      <para>
        A possible <filename>debian/copyright</filename> file for the program
        <quote>Planet Venus</quote>, distributed in the Debian source
        package <literal>planet-venus</literal>:
<programlisting><![CDATA[Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: Planet Venus
Upstream-Contact: John Doe <jdoe@example.com>
Source: http://www.example.com/code/venus

Files: *
Copyright: 2008, John Doe <jdoe@example.com>
           2007, Jane Smith <jsmith@example.org>
           2007, Joe Average <joe@example.org>
           2007, J. Random User <jr@users.example.com>
License: PSF-2
 [LICENSE TEXT]

Files: debian/*
Copyright: 2008, Dan Developer <dan@debian.example.com>
License: permissive
 Copying and distribution of this package, with or without
 modification, are permitted in any medium without royalty
 provided the copyright notice and this notice are
 preserved.

Files: debian/patches/theme-diveintomark.patch
Copyright: 2008, Joe Hacker <hack@example.org>
License: GPL-2+
 [LICENSE TEXT]

Files: planet/vendor/compat_logging/*
Copyright: 2002, Mark Smith <msmith@example.org>
License: MIT
 [LICENSE TEXT]

Files: planet/vendor/httplib2/*
Copyright: 2006, John Brown <brown@example.org>
License: MIT2
 Unspecified MIT style license.

Files: planet/vendor/feedparser.py
Copyright: 2007, Mike Smith <mike@example.org>
License: PSF-2
 [LICENSE TEXT]

Files: planet/vendor/htmltmpl.py
Copyright: 2004, Thomas Brown <coder@example.org>
License: GPL-2+
 This program is free software; you can redistribute it
 and/or modify it under the terms of the GNU General Public
 License as published by the Free Software Foundation; either
 version 2 of the License, or (at your option) any later
 version.
 .
 This program is distributed in the hope that it will be
 useful, but WITHOUT ANY WARRANTY; without even the implied
 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 PURPOSE.  See the GNU General Public License for more
 details.
 .
 You should have received a copy of the GNU General Public
 License along with this package; if not, write to the Free
 Software Foundation, Inc., 51 Franklin St, Fifth Floor,
 Boston, MA  02110-1301 USA
 .
 On Debian systems, the full text of the GNU General Public
 License version 2 can be found in the file
 `/usr/share/common-licenses/GPL-2'.]]></programlisting>
      </para>
    </example>
  </section>

</article>
